package no.sachmuld.methodcombination.examples.annotation.combo.foo;

import no.sachmuld.methodcombination.api.MethodInvocation;

/**
 *
 */
public class FooX extends Foo {

    FooX() {

        with(new FooBehaviour() {

            @Override
            public void beforeBar(int i) {
                System.out.println("FooX.beforeBar");
            }

            @Override
            public String bar(int i, MethodInvocation<String> methodInvocation) {
                System.out.println("FooX.bar(" + i + ")");
                return "FooX";
            }

            @Override
            public void afterBar(int i) {
                System.out.println("FooX.afterBar");
            }

            @Override
            public String baz(int i, MethodInvocation<String> methodInvocation) {
                System.out.println("FooX.baz(" + i + ")");
                return "FooX";
            }

            @Override
            public boolean or() {
                return true;
            }

            @Override
            public int min() {
                return 17;
            }
        });
    }
}

